#ifndef __MCS__COMMAND_LINE_ERROR_EXCEPTION__HPP
#define __MCS__COMMAND_LINE_ERROR_EXCEPTION__HPP

#include "Exception.hpp"

class CommandLineErrorException : public Exception
{
public:
	CommandLineErrorException() {}
	~CommandLineErrorException() {}
};

class UnknownKeyException : public CommandLineErrorException
{
public:
	UnknownKeyException(String key)
		: CommandLineErrorException()
		, key_(key)
	{}

	String key() const { return key_; }

	virtual std::ostream & stream(std::ostream & str) const
	{
		return str << "Unknown command line key \"" << key_ << "\".";
	}
private:
	String key_;
};

#endif //__MCS__COMMAND_LINE_ERROR_EXCEPTION__HPP